//package com.controller;
//
//import com.bean.Goods;
//import com.bean.Msg;
//import com.bean.Orders;
//import com.bean.User;
//import com.service.IGoodsService;
//import com.service.IOrderService;
//import com.service.ISeckillService;
//import com.service.IUserService;
//import com.shiro.token.JWTToken;
//import com.utils.R;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.relational.core.sql.In;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.*;
//
///**
// * @author arthorn
// * @create 2022-06-23-0:14
// */
//
//@RestController
//@RequestMapping("/orders")
//public class OrderController {
//
//    @Autowired
//    private IOrderService orderService;
//
//    @Autowired
//    private ISeckillService iSeckillService;
//
//    @Autowired
//    private IGoodsService goodsService;
//
//    @Autowired
//    private IUserService iUserService;
//
//    @Autowired
//    private ISeckillService seckillService;
//
//
//    /**
//     * 获取下单商品信息 然后生成订单
//     *
//     * @param
//     * @param
//     * @return
//     * @throws Exception
//     */
//    @GetMapping("/{goodsName}/{goodsPrice}/{goodsAddress}/{goodsCount}")
//    public Msg getOrderMsg(@PathVariable("goodsName") String goodsName, @PathVariable Integer goodsPrice,
//                           @PathVariable("goodsAddress") String goodsAddress,
//                           @PathVariable("goodsCount") Integer goodsCount
//            , @RequestHeader("x-access-token") String jwt) throws Exception {
//
//        //把jwt转化为Token，因为已经走了jwt认证了不需要判空和校验
//        JWTToken jwtToken = new JWTToken(jwt);
//        //解析jwt查找到user对象
//        String email = jwtToken.getEmail();
//        User user = iUserService.findByEmail(email);
//        Goods goodsByName = goodsService.getGoodsByName(goodsName);
//        //判断是否为秒杀商品
//        if (goodsByName.getIsSeckill().equals(1)) {
//            return Msg.success().add("result", "订单创建失败,该商品为秒杀商品");
//        }
//
//        Integer stock = goodsByName.getGoodsStock();
//        Integer disStock = goodsCount;
//        //判断是否还有库存
//        if (stock < disStock) {
//            return Msg.success().add("result", "订单创建失败，该商品库存不足");
//        }
//        Orders orders = new Orders();
//        orders.setOuId(user.getUserId());
//        orders.setOrderStatus(1);
//        orders.setOrderPrice(goodsPrice * goodsCount);
//        //修改order表中的地址
//        orders.setAddress(goodsAddress);
//        orderService.createOrders(orders);
//
//
//        iUserService.updateByUserId(user.getNickName(), user.getPhone(), user.getAddress(), user.getUserId());
//
//        //给中间表orders_goods插入数据
//        iSeckillService.addorders_goods(orders.getOrderId(), goodsByName.getGoodsId());
//        //给中间表seckill_order
//        //商品库存-1
//        goodsByName.setGoodsStock(stock - disStock);
//        //更新库存
//        goodsService.updateGoods(goodsByName);
//        return Msg.success().add("result", "订单创建成功");
//    }
//
//    /**
//     * 取消订单
//     *
//     * @param orderId
//     * @return
//     */
//    @DeleteMapping("/{orderId}/{goodsCount}/{goodsName}")
//    public Msg deleteOrderByOrderId(@PathVariable Integer orderId, @PathVariable Integer goodsCount, @PathVariable String goodsName) {
//        //取消订单
//        orderService.deleteOrderByOrderId(orderId);
//
//        Orders orderSeckillByOrderId = orderService.getOrderSeckillByOrderId(orderId);
//
//
//        //删除orders_goods
//        orderService.deleteOrdersGoodsByOrderId(orderId);
//
//        //否则删除user_seckill
//        seckillService.deleteUserSeckill(orderSeckillByOrderId.getOuId());
//
//
//        //回退库存
//        Goods goodsByName = goodsService.getGoodsByName(goodsName);
//        Integer goodsStock = goodsByName.getGoodsStock();
//        goodsByName.setGoodsStock(goodsStock + goodsCount);
//        goodsService.updateGoods(goodsByName);
//        return Msg.success().add("result", "删除成功");
//    }
//
//
//}
